Conventional computer systems typically include several functional components. These components may include a central processing unit (CPU), main memory, input/output (“I/O”) devices, and storage devices (for example, tape drives, disk drives; referred to herein as a “storage device”).
In conventional systems, the main memory is coupled to the CPU via a system bus or a local memory bus. The main memory is used to provide the CPU access to data and/or program information that is stored in main memory at execution time. Typically, the main memory is composed of random access memory (RAM) circuits. A computer system with the CPU and main memory is often referred to as a host system.
The storage device is coupled to the host system via a storage device controller that handles complex details of interfacing the storage device(s) to the host system. Communications between the host system and the controller is usually provided using one of a variety of standard input/output (“I/O”) bus interfaces.
Storage controllers are coupled using various standards, for example, the fiber channel standard incorporated herein by reference in its entirety.
Storage controllers use various processors and memory units (or modules) for storing data/program instructions. For efficient and reliable transfer of data it is important to perform a BIST operation for memory units. Typically, a memory BIST controller is used to perform the BIST. A test access port (“TAP”) controller described below may be used to initiate the memory BIST controller itself.
An industry standard, IEEE 11491.1 and 11491A (referred to as the JTAG standard) is often used for testing integrated circuits after assembly onto a printed circuit board. The JTAG standard is incorporated herein by reference in its entirety. Testing is performed using pins/interface associated with a test access port.
Testing of memory modules within a storage controller becomes a problem when the storage controller is mounted on a dense printed circuit board and there may not be enough room for a TAP interface. Even if there is room for a TAP interface, adding a TAP interface increases the overall board cost.
This problem is further magnified, when the storage controller is placed inside a rack or an enclosed environment. In this case getting access to the TAP interface is difficult without altering or tampering the enclosed environment.
Therefore, there is a need for a method and system for efficiently performing BIST for memory units in a storage controller or other similar environments.